import axios from 'axios'

// 14.对axios进行二次封装

const request = axios.create({
	// 考虑网络请求超时
	timeoutErrorMessage: '链接超时...',
	timeout: 10000
})

request.interceptors.request.use((config) => {
	// 考虑请求添加公共参数
	config.headers.token = localStorage.getItem('token')
	return config
}, (error) => {
	return Promise.reject(error)
})


request.interceptors.response.use((response) => {
	// http:  2xx 
	// 前后端约定状态码
	//   response.data
	return response



}, (error) => {
	// 16.考虑网络错误提示
	if (error.response && error.response.status) {
		const { status } = error.response

		switch (status) {
			case 400:
				console.log('客服端错误！！！！');
				break;
			case 401:
				console.log('未登录， 请登录！！！')
				break;

			case 403:
				console.log('非常遗憾， 没有权限访问')
				break;

			case 404:
				console.log('资源不存在...')
				break;

			case 500:
				console.log('服务器错误')
				break;

			case 501:
				console.log('服务器不具备完成请求的功能')
				break;

		}
	}
	return Promise.reject(error)
})